Django REST Framework (DRF) এর ইনস্টলেশন এবং সেটআপ

Web Development - জ্যাঙ্গো (Django) - Django API ডেভেলপমেন্ট (Django REST Framework)
204

Django REST Framework (DRF) হলো Django-এর একটি শক্তিশালী এবং জনপ্রিয় লাইব্রেরি, যা API (Application Programming Interface) ডেভেলপমেন্টে ব্যবহৃত হয়। এটি HTTP ভিত্তিক ওয়েব সার্ভিস তৈরি এবং ব্যবস্থাপনার জন্য একটি সহজ এবং কার্যকরী পদ্ধতি প্রদান করে। DRF ব্যবহার করে আপনি দ্রুত এবং নিরাপদ API তৈরি করতে পারবেন, যা ফ্রন্টএন্ড অ্যাপ্লিকেশন (যেমন React, Angular, বা Vue.js) বা মোবাইল অ্যাপ্লিকেশনের সাথে সংযুক্ত হতে পারে।


Django REST Framework এর সুবিধাসমূহ

  1. সহজ ইন্টিগ্রেশন: Django এর সাথে সহজে ইন্টিগ্রেট করা যায় এবং এর সাথে কাজ করা হয় Django এর ORM (Object-Relational Mapping) ব্যবহার করে।
  2. স্বয়ংক্রিয় ডকুমেন্টেশন: Swagger বা ReDoc এর মতো টুল ব্যবহার করে API ডকুমেন্টেশন তৈরি করা সম্ভব।
  3. সক্ষম Authentication এবং Permission ব্যবস্থা: এটি অন্তর্নির্মিত অথেনটিকেশন এবং পারমিশন সিস্টেম প্রদান করে, যার মাধ্যমে আপনি নির্দিষ্ট ইউজারদের জন্য API অ্যাক্সেস কন্ট্রোল করতে পারেন।
  4. উন্নত Serialization: ডেটাকে JSON বা XML ফর্ম্যাটে রূপান্তর করা সহজ এবং সুন্দরভাবে কাস্টমাইজ করা যায়।
  5. Query Parameters এর সহজ সমর্থন: আপনাকে ডেটা ফিল্টার, পেজিনেট, এবং সোর্ট করার জন্য সরল পদ্ধতি প্রদান করে।

Django REST Framework সেটআপ

১. Django REST Framework ইনস্টল করা

প্রথমে, DRF ইনস্টল করতে হবে:

pip install djangorestframework

এটি ইনস্টল করার পরে, আপনাকে settings.py ফাইলে DRF অ্যাপ যোগ করতে হবে:

# settings.py

INSTALLED_APPS = [
    ...
    'rest_framework',  # Django REST Framework অ্যাপ
]

২. Serializer তৈরি করা

Django REST Framework এর অন্যতম শক্তিশালী বৈশিষ্ট্য হল serializers, যা ডেটাকে JSON, XML ইত্যাদি ফর্ম্যাটে রূপান্তর করতে সহায়তা করে। প্রথমে, একটি serializer তৈরি করতে হবে।

# serializers.py
from rest_framework import serializers
from .models import Product

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = ['id', 'name', 'price', 'available']

এখানে:

  • ProductSerializer একটি মডেল সিরিয়ালাইজার, যা Product মডেলের ডেটা JSON ফর্ম্যাটে রূপান্তর করবে।

৩. Views তৈরি করা

DRF তে API তৈরি করতে APIView বা viewsets ব্যবহার করা হয়। সাধারণভাবে, APIView এর মাধ্যমে আপনি কাস্টম লজিক লিখতে পারেন, এবং viewsets ব্যবহার করলে ডিফল্ট CRUD অপারেশনগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়।

APIView এর মাধ্যমে API তৈরি:

# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Product
from .serializers import ProductSerializer

class ProductList(APIView):
    def get(self, request, format=None):
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)

    def post(self, request, format=None):
        serializer = ProductSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

এখানে:

  • get() মেথডটি সমস্ত পণ্য ফেরত দেয়।
  • post() মেথডটি নতুন পণ্য তৈরি করে।

৪. URLs কনফিগারেশন

এখন আপনাকে urls.py ফাইলে এই API রুটগুলো কনফিগার করতে হবে।

# urls.py
from django.urls import path
from .views import ProductList

urlpatterns = [
    path('products/', ProductList.as_view(), name='product-list'),
]

এখন /products/ URL তে GET বা POST রিকোয়েস্ট পাঠালে, আপনার তৈরি API রেসপন্স দেবে।


Django REST Framework এ Authentication এবং Permissions

Django REST Framework আপনাকে API-এর জন্য বিভিন্ন ধরনের authentication এবং permission ব্যবস্থা প্রদান করে। আপনি চাইলে API গুলিতে authenticationpermissions যোগ করতে পারেন, যাতে কেবল নির্দিষ্ট ইউজার বা গ্রুপ অ্যাক্সেস পায়।

১. Authentication যুক্ত করা

DRF তে সাধারণত ৩ ধরনের authentication ব্যবহৃত হয়:

  • Session Authentication (ডিফল্ট)
  • Token Authentication
  • Basic Authentication

Token Authentication ব্যবহার করার জন্য:

  1. djangorestframework-simplejwt ইনস্টল করুন:

    pip install djangorestframework-simplejwt
    
  2. settings.py তে authentication কনফিগার করুন:

    # settings.py
    REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'rest_framework_simplejwt.authentication.JWTAuthentication',
        ],
    }
    

২. Permissions যুক্ত করা

Permissions ক্লাসগুলো আপনাকে নির্দিষ্ট ইউজারের জন্য বা অ্যাক্সেস কন্ট্রোল করার জন্য ব্যবহার করা হয়। উদাহরণস্বরূপ:

# views.py
from rest_framework.permissions import IsAuthenticated
from rest_framework.views import APIView

class ProductList(APIView):
    permission_classes = [IsAuthenticated]  # কেবল লগইন করা ইউজারদের জন্য

    def get(self, request):
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)

এখানে, IsAuthenticated permission ক্লাসটি নিশ্চিত করে যে কেবল অথেনটিকেটেড ইউজাররা এই API অ্যাক্সেস করতে পারবে।


Conclusion

Django REST Framework (DRF) Django এ শক্তিশালী এবং স্বয়ংক্রিয় API ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এটি সহজ এবং কার্যকরীভাবে RESTful API তৈরি, ডেটা সিরিয়ালাইজেশন, অথেনটিকেশন, পারমিশন এবং রাউটিং পরিচালনা করতে সহায়তা করে। DRF ব্যবহার করে আপনি আপনার Django অ্যাপ্লিকেশনকে API ভিত্তিক করতে পারেন, যা মোবাইল অ্যাপ্লিকেশন, সিঙ্গল পেজ অ্যাপ্লিকেশন (SPA) বা অন্যান্য ক্লায়েন্টদের সাথে যোগাযোগ করতে পারে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...